{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "be9c5745",
   "metadata": {},
   "source": [
    "此题在第一套考题中"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "898de5f2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>school</th>\n",
       "      <th>sex</th>\n",
       "      <th>age</th>\n",
       "      <th>address</th>\n",
       "      <th>famsize</th>\n",
       "      <th>Pstatus</th>\n",
       "      <th>Medu</th>\n",
       "      <th>Fedu</th>\n",
       "      <th>Mjob</th>\n",
       "      <th>...</th>\n",
       "      <th>famrel</th>\n",
       "      <th>freetime</th>\n",
       "      <th>goout</th>\n",
       "      <th>Dalc</th>\n",
       "      <th>Walc</th>\n",
       "      <th>health</th>\n",
       "      <th>absences</th>\n",
       "      <th>G1</th>\n",
       "      <th>G2</th>\n",
       "      <th>G3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>GP</td>\n",
       "      <td>Man</td>\n",
       "      <td>18</td>\n",
       "      <td>U</td>\n",
       "      <td>GT3</td>\n",
       "      <td>A</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>at_home</td>\n",
       "      <td>...</td>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>6</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>10</td>\n",
       "      <td>5</td>\n",
       "      <td>13</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>GP</td>\n",
       "      <td>WoMan</td>\n",
       "      <td>19</td>\n",
       "      <td>U</td>\n",
       "      <td>GT3</td>\n",
       "      <td>T</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>at_home</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>3</td>\n",
       "      <td>6</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>6</td>\n",
       "      <td>5</td>\n",
       "      <td>15</td>\n",
       "      <td>13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>GP</td>\n",
       "      <td>Man</td>\n",
       "      <td>21</td>\n",
       "      <td>U</td>\n",
       "      <td>GT3</td>\n",
       "      <td>A</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>services</td>\n",
       "      <td>...</td>\n",
       "      <td>3</td>\n",
       "      <td>6</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>5</td>\n",
       "      <td>7</td>\n",
       "      <td>15</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3</td>\n",
       "      <td>GP</td>\n",
       "      <td>WoMan</td>\n",
       "      <td>17</td>\n",
       "      <td>U</td>\n",
       "      <td>GT3</td>\n",
       "      <td>T</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>other</td>\n",
       "      <td>...</td>\n",
       "      <td>3</td>\n",
       "      <td>6</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>10</td>\n",
       "      <td>12</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>GP</td>\n",
       "      <td>Man</td>\n",
       "      <td>16</td>\n",
       "      <td>U</td>\n",
       "      <td>GT3</td>\n",
       "      <td>A</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>health</td>\n",
       "      <td>...</td>\n",
       "      <td>4</td>\n",
       "      <td>6</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>9</td>\n",
       "      <td>13</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 24 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   ID school    sex  age address famsize Pstatus  Medu  Fedu      Mjob  ...  \\\n",
       "0   0     GP    Man   18       U     GT3       A     1     4   at_home  ...   \n",
       "1   1     GP  WoMan   19       U     GT3       T     3     3   at_home  ...   \n",
       "2   2     GP    Man   21       U     GT3       A     4     1  services  ...   \n",
       "3   3     GP  WoMan   17       U     GT3       T     2     2     other  ...   \n",
       "4   4     GP    Man   16       U     GT3       A     1     4    health  ...   \n",
       "\n",
       "  famrel freetime goout Dalc  Walc  health  absences  G1  G2  G3  \n",
       "0      2        4     1    6     2       2        10   5  13  10  \n",
       "1      1        5     3    6     1       1         6   5  15  13  \n",
       "2      3        6     3    3     3       3         5   7  15  15  \n",
       "3      3        6     4    2     3       3         4  10  12  15  \n",
       "4      4        6     5    1     4       4         1   9  13  12  \n",
       "\n",
       "[5 rows x 24 columns]"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import numpy as np \n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "# 读取数据\n",
    "df = pd.read_csv('./4student-info-数据/student-info.csv')\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "34b49f0e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "ID          0\n",
       "school      0\n",
       "sex         0\n",
       "age         0\n",
       "address     0\n",
       "famsize     0\n",
       "Pstatus     0\n",
       "Medu        0\n",
       "Fedu        0\n",
       "Mjob        0\n",
       "Fjob        0\n",
       "higher      0\n",
       "internet    0\n",
       "romantic    0\n",
       "famrel      0\n",
       "freetime    0\n",
       "goout       0\n",
       "Dalc        0\n",
       "Walc        0\n",
       "health      0\n",
       "absences    0\n",
       "G1          0\n",
       "G2          0\n",
       "G3          0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.isnull().sum()   # 无缺失值"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bc180c41",
   "metadata": {},
   "source": [
    "1.查看年龄和性别的分布柱状图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "f19f68f8",
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "68a987ae",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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/oW0RVq2bGn/c3BwsKQ/vpTWjJiZAQDAREaOHKknnnhCkvTqq68WW9+/f3+FhoZq8eLFCgkJUWFhoZo3b668vDyHflWrVrX/uegRQZeeijILwgwAACZy11132YNJr169HNadPHlS6enpev3119W5c2dJ0hdffOH0Gp2NMAMAgIl4eHgoPT3d/ueL1apVSwEBAXrjjTcUHByso0eP6plnnnFFmU7FNTMAAJhMaQ9SrlKlit577z3t3LlTzZs319ixYzVnzhwXVOhczMwAAG54V/qNvM5W1jf7rlmzxv7nHj16aN++fQ7rDcOw/7l+/foOryWpZs2axdrMhJkZAABgaoQZAABgaoQZAABgaoQZAABgaoQZAABgaoQZAABgatyajVK1nbDcqftz91sjAQDuiZkZAABgaoQZAABgaoQZAABgalwzAwC44R2d0cKp+wubtqfcfRctWqQJEybo1KlT8vT849f22bNnVatWLd1xxx3asmWLve+WLVvUpUsX7d+/X40aNSp1m8nJyeratatq1qyp48ePy8vLy75u+/btat++vSSZ5hEHzMwAAODGunbtqrNnz2rHjh32ti1btshmsyktLU05OTn29uTkZIWEhFw2yFzM19dXq1evdmhbsmSJwsLCKqZ4JyHMAADgxho3bqyQkBAlJyfb25KTkzVgwADdfPPNSk1NdWjv2rWrTp06pWHDhqlWrVry8fFR7969deDAgWLbHj58uJYsWWJ/fe7cOb333nsaPny4Q7+TJ09qyJAhqlevnnx8fNSiRQu9++67Dn2io6P11FNPaeLEiapdu7ZsNpsSEhIqZhDKQJgBAMDNRUdHa9OmTfbXmzZtUnR0tKKiouzteXl52rp1q7p27aoRI0Zox44dWrt2rbZu3SrDMNSnTx9duHDBYbtDhw7Vli1bdPToUUnSv//9b9WvX19t2rRx6Hf+/Hm1bdtWn3zyib777js9+uijGjp0qL766iuHfsuWLVP16tX11Vdfafbs2ZoxY4aSkpIqY0gcEGYAAHBz0dHR+vLLL5Wfn6+srCx9/fXX6tKli6KiouwzNtu2bdO5c+fUqVMnrV27Vm+++aY6d+6sVq1aacWKFfrpp5+0Zs0ah+0GBgaqd+/eevvttyX9cYpp5MiRxfZ/0003afz48WrdurUaNGigJ598Ur169dIHH3zg0K9ly5aaPn26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kiRlZGQoODjY3j8zM7PYbM3FrFarrFZr5RYNAADchstnZi5lGIZyc3MVEREhm82mpKQk+7q8vDylpKSoY8eOLqwQAAC4E5fOzPztb39T7969FRoaqqysLL333ntKTk7WunXrZLFYNGbMGCUmJioyMlKRkZFKTEyUj4+P4uLiXFk2AABwIy4NMydOnNDQoUN1/Phx+fv7q2XLllq3bp169uwpSZo4caLOnTun0aNH69SpU2rfvr3Wr19v//ZhAAAAl4aZt95667LrLRaLEhISlJCQ4JyCAACA6bjdNTMAAABXgjADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMzdPVBQDAjaLthOVO3d/OOcOcuj/AVZiZAQAApkaYAQAApkaYAQAApkaYAQAApkaYAQAApkaYAQAApkaYAQAApkaYAQAApkaYAQAApkaYAQAApkaYAQAApkaYAQAApubSMDNz5kzddttt8vX1VWBgoO655x7t37/foY9hGEpISFBISIi8vb0VHR2tvXv3uqhiAADgblwaZlJSUvT4449r27ZtSkpKUn5+vmJiYpSdnW3vM3v2bM2bN08LFixQWlqabDabevbsqaysLBdWDgAA3IWnK3e+bt06h9dLly5VYGCgdu7cqS5dusgwDM2fP1/x8fGKjY2VJC1btkxBQUFauXKlRo0a5YqyAQCAG3Gra2ZOnz4tSapdu7Yk6dChQ8rIyFBMTIy9j9VqVVRUlFJTU0vcRm5urs6cOeOwAACA65fbhBnDMDRu3Dh16tRJzZs3lyRlZGRIkoKCghz6BgUF2dddaubMmfL397cvoaGhlVs4AABwKbcJM0888YS+/fZbvfvuu8XWWSwWh9eGYRRrKzJ58mSdPn3avhw7dqxS6gUAAO7BpdfMFHnyySe1du1abd68WfXq1bO322w2SX/M0AQHB9vbMzMzi83WFLFarbJarZVbMAAAcBsunZkxDENPPPGE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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.countplot(x='age',hue='sex',data=df)\n",
    "plt.xlabel('age')\n",
    "plt.ylabel('sex')\n",
    "plt.title('Distribution bar chart of age and gender')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "beffdb98",
   "metadata": {},
   "source": [
    "2.查看年龄和成绩分布箱线图，输出如下："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "8303c58a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHFCAYAAAAHcXhbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA54UlEQVR4nO3deXQUZdrG4buTkO5OCIGgkARCgBFBWZVFRxgJCkY2cQFUEBAcRwVcQJmIyOYgizh+OCIgjgN4FERGdkcCKgQVmAERF0QQRWFEQAUJRLL2+/3hpE2TPaS7usLvOifnpKur6n3qSXf65q2q4DDGGAEAANhUiNUFAAAAnAvCDAAAsDXCDAAAsDXCDAAAsDXCDAAAsDXCDAAAsDXCDAAAsDXCDAAAsDXCDAAAsDXCDCrVwoUL5XA4fL4uvPBCJSUlae3atVaXV6I777xTDRs2rNC2c+bM0cKFCyu1HknKzs7Wvffeq7i4OIWGhqpNmzaVPkZVkJSUpKSkJKvLKJP898g333wT8HEq0qfPP/9ckyZNKne9Z4/1zTffyOFw6Omnny7XfkozdepUrVy5stDyTZs2yeFwaNOmTZU6HoJTmNUFoGpasGCBmjVrJmOMjhw5otmzZ6t3795avXq1evfubXV5lW7OnDm64IILdOedd1bqfufOnasXXnhBzz33nNq2bavq1atX6v5xfpkzZ065t/n88881efJkJSUllSvsV2Ssipg6dar69u2rG2+80Wf55Zdfrq1bt+rSSy8NSB2wFmEGftGiRQu1a9fO+/j6669XrVq1tGTJkioZZvzls88+k9vt1siRI60u5bz3yy+/KCIiwuoyzkkgPtjz+2R1iKhRo4auvPJKS2tA4HCaCQHhcrkUHh6uatWq+Sw/fvy4hg8frnr16ik8PFyNGzfWuHHjlJWVJUnKzMzUZZddposuukgnT570bnfkyBHFxsYqKSlJeXl5xY6bP9W+YcMGDR06VDExMYqMjFTv3r319ddfl1p3Zmamxo4dq0aNGik8PFz16tXTiBEj9PPPP3vXadiwoXbv3q20tDTvqbXS/gVblv06HA79/e9/15kzZ7z7LelU1oYNG9SnTx/Vr19fLpdLF110ke655x79+OOPhdZdtWqVWrVqJafTqcaNG+vZZ5/VpEmT5HA4fNYzxmjOnDlq06aN3G63atWqpb59+5apd/v379fQoUPVpEkTRUREqF69eurdu7c+/fRTn/XyTwcsWbJE48aNU3x8vGrUqKGuXbtq7969hep56qmnlJiYKJfLpcsvv1xvvfVWqbXk+/nnn3XXXXcpJiZG1atXV8+ePfX111/L4XBo0qRJ3vXye7Fz50717dtXtWrV0u9+9ztJ0o4dO3TbbbepYcOGcrvdatiwoW6//XZ9++23hcbbtm2bOnbsKJfLpfj4eI0dO1Y5OTlF1rZ06VL9/ve/V2RkpKpXr67k5GR99NFHZTquso5T1GmmuXPnqnXr1qpevbqioqLUrFkzPfbYY5J+ff/069dPktSlS5dCr8OkpCS1aNFCmzdv1lVXXaWIiAgNGzas2LEkyePx6Mknn1SDBg3kcrnUrl07vfPOOz7rFHfK9+zXqMPhUEZGhhYtWuStLX/M4k4zrV69Wr///e8VERGhqKgodevWTVu3bi1ynN27d+v2229XdHS06tatq2HDhvn8HkIQMUAlWrBggZFktm3bZnJyckx2drY5dOiQeeCBB0xISIhZt26dd90zZ86YVq1amcjISPP000+b9evXm/Hjx5uwsDDTo0cP73r79u0zUVFR5uabbzbGGJOXl2euueYaU6dOHXP48OEy1ZOQkGCGDRtm3nrrLTN//nxTp04dk5CQYE6cOOFdd8iQISYxMdH72OPxmOTkZBMWFmbGjx9v1q9fb55++mkTGRlpLrvsMpOZmWmMMWbnzp2mcePG5rLLLjNbt241W7duNTt37iy2prLud+vWraZHjx7G7XZ793vs2LFi9zt37lwzbdo0s3r1apOWlmYWLVpkWrdubZo2bWqys7O967311lsmJCTEJCUlmRUrVphly5aZK664wjRs2NCc/Svh7rvvNtWqVTMPP/ywWbdunVm8eLFp1qyZqVu3rjly5EiJvU9LSzMPP/yw+ec//2nS0tLMihUrzI033mjcbrf54osvvOtt3LjRSDINGzY0AwcONG+++aZZsmSJadCggWnSpInJzc31rjtx4kQjydx1113en2W9evVMbGys6dy5c4n15OXlmU6dOhmXy2WmT59u1q9fbyZPnmyaNGliJJmJEycWGicxMdGkpKSYDRs2mJUrVxpjjFm2bJmZMGGCWbFihUlLSzOvvfaa6dy5s7nwwgvNDz/84N3H7t27TUREhLn00kvNkiVLzKpVq0xy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3bpp9OjR8ng8mjFjhtLT032O8dZbb9WECRN02223acyYMcrMzNTf/va3Iq+padmypTZt2qQ1a9YoLi5OUVFRatq0aaH1QkJC9NRTT2ngwIHq1auX7rnnHmVlZWnmzJn6+eefNX369AodD4KEZZceo0oq6m6m6Oho06ZNG/PMM894bzvO99NPP5l7773XxMXFmbCwMJOYmGjGjh3rXe+TTz4xbre70N0KmZmZpm3btqZhw4Y+t1cXV8/69evNoEGDTM2aNb23cn755Zc+6xZ1B8WZM2dMSkqKSUxMNNWqVTNxcXHmvvvuKzTmN998Y6677joTFRXlvaW3JGXdb3nuZvr8889Nt27dTFRUlKlVq5bp16+fOXjwYKE7dYwxZsWKFaZly5YmPDzcNGjQwEyfPt088MADplatWoX2+49//MNcccUVJjIy0rjdbvO73/3ODB482OzYsaPEek6cOGHuuusuU6dOHRMREWE6depk3nvvvUJ3ueTfdbJs2TKf7fPvflmwYIF3mcfjMdOmTTMJCQkmPDzctGrVyqxZs6bQPotz/PhxM3ToUFOzZk0TERFhunXrZrZt22Yk+dyJlH83S8FbrfP997//NbfccoupVauWiYqKMtdff7357LPPTGJiYqHX6QcffGCuvPJK43Q6TWxsrBkzZoyZP39+obuMjDFm5cqVpkuXLqZGjRrG6XSaxMRE07dvX/P222+XelxlHefsPi1atMh06dLF1K1b14SHh5v4+HjTv39/88knn/jsf9asWaZRo0YmNDTU52fSuXNn07x58yJrKu5uphkzZpjJkyeb+vXrm/DwcHPZZZeZ1NTUQtv/61//Mm3atDFut9s0btzYzJ49u8i7mXbt2mU6duxoIiIifO5qK+rWbGN+7fMVV1xhXC6XiYyMNNdee6354IMPfNYp7uef//vk7J8drOcwpsB8G1DFLFy4UEOHDtX27dtLna4/n+Xk5KhNmzaqV6+e1q9fb3U5AbV48WINHDhQH3zwga666iqrywFQAZxmAs5Dd911l7p16+Y9tTBv3jzt2bNHzz77rNWl+dWSJUv03XffqWXLlgoJCdG2bds0c+ZMXX311QQZwMYIM8B56NSpU3rkkUf0ww8/qFq1arr88sv1r3/9y3udUlUVFRWl1157TVOmTFFGRobi4uJ05513asqUKVaXBuAccJoJAADY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V2xsrLp16+b9f+uqqrL0JiMjQx07dtT06dMtrDTwSuvNL7/8op07d2r8+PHauXOnli9frn379umGG26wuPISGPiVJLNixQqfZbfeequ54447rCkoiBTVm7P16dPHXHPNNYEpKIgU1ZvmzZubJ554wmfZ5Zdfbh5//PEAVma9s3uzd+9eI8l89tln3mW5ubkmJibGvPjiixZUaJ1jx44ZSSYtLc0YY4zH4zGxsbFm+vTp3nUyMzNNdHS0mTdvnlVlWuLs3hR04MABI8l89NFHgS8sCJTUm3z/+c9/jCTz7bffBrCysmNmJsA8Ho/efPNNXXzxxUpOTladOnV0xRVXFHkq6nx39OhRvfnmm7rrrrusLiUodOrUSatXr9Z3330nY4w2btyoffv2KTk52erSLJWVlSVJPjOboaGhCg8P1/vvv29VWZY4efKkJCkmJkaSdODAAR05ckTXXXeddx2n06nOnTtry5YtltRolbN7g9+UpTcnT56Uw+FQzZo1A1RV+RBmAuzYsWM6ffq0pk+fruuvv17r16/XTTfdpJtvvllpaWlWlxdUFi1apKioKN18881WlxIU/va3v+nSSy9V/fr1FR4eruuvv15z5sxRp06drC7NUs2aNVNiYqLGjh2rEydOKDs7W9OnT9eRI0f0/fffW11ewBhjNHr0aHXq1EktWrSQJB05ckSSVLduXZ9169at633ufFBUb/CrsvQmMzNTjz76qAYMGBAU//lkUar8/5odbDwejySpT58+GjVqlCSpTZs22rJli+bNm6fOnTtbWV5Q+cc//qGBAweeF9cSlcXf/vY3bdu2TatXr1ZiYqI2b96s4cOHKy4uTl27drW6PMtUq1ZNb7zxhu666y7FxMQoNDRUXbt2Vffu3a0uLaBGjhypTz75pMjZKIfD4fPYGFNoWVVWUm/Od6X1JicnR7fddps8Ho/mzJkT4OrKjjATYBdccIHCwsJ06aWX+iy/5JJLeKMV8N5772nv3r1aunSp1aUEhTNnzuixxx7TihUr1LNnT0lSq1attGvXLj399NPndZiRpLZt22rXrl06efKksrOzdeGFF+qKK65Qu3btrC4tIO6//36tXr1amzdvVv369b3LY2NjJf06QxMXF+ddfuzYsUKzNVVVcb1B6b3JyclR//79deDAAb377rtBOysjcZop4MLDw9W+fftCtwju27dPiYmJFlUVfF566SW1bdtWrVu3trqUoJCTk6OcnByFhPi+ZUNDQ72zfZCio6N14YUX6ssvv9SOHTvUp08fq0vyK2OMRo4cqeXLl+vdd99Vo0aNfJ5v1KiRYmNjtWHDBu+y7OxspaWl6aqrrgp0uQFVWm/OZ2XpTX6Q+fLLL/X222+rdu3aFlRadszM+MHp06e1f/9+7+MDBw5o165diomJUYMGDTRmzBjdeuutuvrqq9WlSxetW7dOa9as0aZNm6wrOkBK640kpaena9myZfrrX/9qVZmWKK03nTt31pgxY+R2u5WYmKi0tDS9/PLLeuaZZyysOjBK682yZct04YUXqkGDBvr000/14IMP6sYbb/S58LUqGjFihBYvXqxVq1YpKirKex1MdHS03G63HA6HHnroIU2dOlVNmjRRkyZNNHXqVEVERGjAgAEWV+9fpfVGko4fP66DBw96/35K/j8yY2NjvbNaVVFpvcnNzVXfvn21c+dOrV27Vnl5ed51YmJiFB4ebmX5RbPuRqqqa+PGjUZSoa8hQ4Z413nppZfMRRddZFwul2ndurVZuXKldQUHUFl688ILLxi3221+/vln6wq1QGm9+f77782dd95p4uPjjcvlMk2bNjV//etfjcfjsbbwACitN88++6ypX7++qVatmmnQoIF5/PHHTVZWlrVFB0BRPZFkFixY4F3H4/GYiRMnmtjYWON0Os3VV19tPv30U+uKDpCy9GbBggVFrjNx4kTL6g6E0nqTf6t6UV8bN260tPbiOIwxptITEgAAQIBwzQwAALA1wgwAALA1wgwAALA1wgwAALA1wgwAALA1wgwAALA1wgwAALA1wgwAALA1wgwAALA1wgwAALA1wgyAoLNu3Tp16tRJNWvWVO3atdWrVy999dVX3ue3bNmiNm3ayOVyqV27dlq5cqUcDod27drlXefzzz9Xjx49VL16ddWtW1eDBg3Sjz/+aMHRAPA3wgyAoJORkaHRo0dr+/bteueddxQSEqKbbrpJHo9Hp06dUu/evdWyZUvt3LlTf/nLX5SSkuKz/ffff6/OnTurTZs22rFjh9atW6ejR4+qf//+Fh0RAH/iP5oEEPR++OEH1alTR59++qnef/99Pf744/rvf/8rl8slSfr73/+uu+++Wx999JHatGmjCRMm6N///rdSU1O9+/jvf/+rhIQE7d27VxdffLFVhwLAD5iZARB0vvrqKw0YMECNGzdWjRo11KhRI0nSwYMHtXfvXrVq1cobZCSpQ4cOPtt/+OGH2rhxo6pXr+79atasmXffAKqWMKsLAICz9e7dWwkJCXrxxRcVHx8vj8ejFi1aKDs7W8YYORwOn/XPnmD2eDzq3bu3ZsyYUWjfcXFxfq0dQOARZgAElZ9++kl79uzRCy+8oD/84Q+SpPfff9/7fLNmzfTqq68qKytLTqdTkrRjxw6ffVx++eV644031LBhQ4WF8WsOqOo4zQQgqNSqVUu1a9fW/PnztX//fr377rsaPXq09/kBAwbI4/HoT3/6k/bs2aPU1FQ9/fTTkuSdsRkxYoSOHz+u22+/Xf/5z3/09ddfa/369Ro2bJjy8vIsOS4A/kOYARBUQkJC9Nprr+nDDz9UixYtNGrUKM2cOdP7fI0aNbRmzRrt2rVLbdq00bhx4zRhwgRJ8l5HEx8frw8++EB5eXlKTk5WixYt9OCDDyo6OlohIfzaA6oa7mYCYHuvvvqqhg4dqpMnT8rtdltdDoAA42QyANt5+eWX1bhxY9WrV08ff/yxUlJS1L9/f4IMcJ4izACwnSNHjmjChAk6cuSI4uLi1K9fPz355JNWlwXAIpxmAgAAtsaVcAAAwNYIMwAAwNYIMwAAwNYIMwAAwNYIMwAAwNYIMwAAwNYIMwAAwNYIMwAAwNYIMwAAwNb+H86xNDQHDc9rAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.boxplot(x='age',y='G3',data=df)\n",
    "plt.xlabel('age')\n",
    "plt.ylabel('G3')\n",
    "plt.title('Box plot of age and grade distribution')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e89138aa",
   "metadata": {},
   "source": [
    "4.使用swarmplot函数查看年龄和成绩分布图;输出如下："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "0d9589ab",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\soft\\anaconda\\lib\\site-packages\\seaborn\\categorical.py:3544: UserWarning: 18.3% of the points cannot be placed; you may want to decrease the size of the markers or use stripplot.\n",
      "  warnings.warn(msg, UserWarning)\n",
      "D:\\soft\\anaconda\\lib\\site-packages\\seaborn\\categorical.py:3544: UserWarning: 17.3% of the points cannot be placed; you may want to decrease the size of the markers or use stripplot.\n",
      "  warnings.warn(msg, UserWarning)\n",
      "D:\\soft\\anaconda\\lib\\site-packages\\seaborn\\categorical.py:3544: UserWarning: 8.4% of the points cannot be placed; you may want to decrease the size of the markers or use stripplot.\n",
      "  warnings.warn(msg, UserWarning)\n",
      "D:\\soft\\anaconda\\lib\\site-packages\\seaborn\\categorical.py:3544: UserWarning: 31.7% of the points cannot be placed; you may want to decrease the size of the markers or use stripplot.\n",
      "  warnings.warn(msg, UserWarning)\n",
      "D:\\soft\\anaconda\\lib\\site-packages\\seaborn\\categorical.py:3544: UserWarning: 29.8% of the points cannot be placed; you may want to decrease the size of the markers or use stripplot.\n",
      "  warnings.warn(msg, UserWarning)\n",
      "D:\\soft\\anaconda\\lib\\site-packages\\seaborn\\categorical.py:3544: UserWarning: 16.9% of the points cannot be placed; you may want to decrease the size of the markers or use stripplot.\n",
      "  warnings.warn(msg, UserWarning)\n"
     ]
    },
    {
     "data": {
      "image/png": "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nTpVABDvvfeeZVtCQoLo2bOnqKqqstp3xIgRonXr1qK6urrB86uurhZVVVViyZIlIioqStTU1Fja2rdvL5o3by6OHj1q2XbhwgURGRkppk6datl2zz33iODgYFFUVGTZdvnyZZGQkCAAiCNHjjgc32w2i5tuuslq+9GjR0VAQIBo3769ZduRI0cEABEbGysuXbrkMK7Lly+Lqqoq8eCDD4qePXtatm/YsEEAEK+99prV/s8995wAIBYtWmTZlpKSItq0aSNKSkqs9n3kkUdE8+bNxZkzZ1THb8w47733nlWedu7cKQCI9evXO4zxqquuEhMnTrTZXtffAw88oNp25TkZOHCgACA+/fRTq30feugh0axZM8v5z8zMFABEZmam1X515+XKNTpz5kyh9lbdvn17q3nPnTtXABA//vij1X7Tp08XiqKIw4cPW43TtWtXcfnyZct+27dvFwDE3//+d7vj1ZkyZYoICAgQBw4cUN2nLsbbbrvNavs//vEPAUBs27bN7nE1NTWiqqpKHD161CaXixYtEgDEwoULbY5zlCfyfvyaiaSxatUqBAcHY9y4cQCA0NBQ3H333fj222+Rm5tr2W/Lli0ICwvD0KFDrY6/9957rX7Py8vDoUOHcN999wEALl++bPm57bbbcPLkSZvL4fVt3rwZgwYNQkREBPz8/BAQEICFCxfi9OnTOHXqlNW+PXr0sFzBAYDmzZsjPj4eR48etWzLzMzE73//e6v/s/Xz87N7Vam+w4cPo6ioCGPHjrXa3q5dO/Tr18/uMbfffrvdqwyffPIJ+vXrh9DQUPj7+yMgIACrVq3CwYMHreYKwJK/OuPHj7f6/eLFi/jmm29w5513IiQkxCbPFy9edPjVRkPHsScuLg5XX3015syZg7S0NBw4cMDpMfaMHj26wfuGhYXh9ttvt9o2fvx41NTUYOvWrS6N31CbN29G586dceONN1ptnzRpEoQQ2Lx5s9X24cOHW66OAEC3bt0AwGpN2rNhwwYkJyfj+uuvdzqn+rmwN8apU6cwbdo0tG3b1rLe2rdvDwBWa65OY84H+QYWMySFvLw8bN26FcOHD4cQAufOncO5c+cwZswYALC69+T06dNWxUCd+tvqvtv/85//jICAAKufGTNmAIDNd/ZX2r59O4YMGQKg9j6V77//Hjt27MBTTz0FoPZrsStFRUXZ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4o9//CM+++wzbN26FW3atLFsN5vNAGqv0LRu3dqy/dSpUzZXa7yVWm7IeW6qqqowduxYHDlyBJs3bzbsVRmAXzN5XGBgIPr06WPziGBOTg7at2+v06yMZ9WqVejduze6d++u91QMoaqqClVVVWjWzPol6+fnZ7naR0BERARatmyJ3Nxc7Ny5E3fccYfeU9KUEAKPPPII1q5di82bN6NDhw5W7R06dIDZbMbXX39t2Xbp0iVs2bIFffv29fR0PcpZbnxZQ3JTV8jk5ubi3//+N6KionSYacPxyowGysvLkZeXZ/n9yJEj2Lt3LyIjI9GuXTs88cQTuOeeezBgwAAkJydj48aN+Pzzz5GVlaXfpD3EWW4AoLS0FJ988glefvllvaapC2e5GThwIJ544gkEBwejffv22LJlC95//32sWLFCx1l7hrPcfPLJJ2jZsiXatWuHn3/+GY8++ihGjRpldeOrN5o5cyY+/PBDfPrppwgLC7PcBxMREYHg4GAoioLHHnsMzz//PDp16oROnTrh+eefR0hICMaPH6/z7LXlLDcAcObMGRw7dszy76fU/U+m2Wy2XNXyRs5yc/nyZYwZMwa7d+/GF198gerqass+kZGRCAwM1HP69un3IJX3yszMFABsfiZOnGjZZ9WqVSIuLk40b95cdO/eXaxfv16/CXtQQ3Lz1ltvieDgYHHu3Dn9JqoDZ7k5efKkmDRpkoiOjhbNmzcX1113nXj55ZdFTU2NvhP3AGe5ee2110SbNm1EQECAaNeunXj66adFZWWlvpP2AHs5ASDee+89yz41NTVi0aJFwmw2i6CgIDFgwADx888/6zdpD2lIbt577z27+yxatEi3eXuCs9zUPapu7yczM1PXuatRhBCiySskIiIiIg/hPTNEREQkNRYzREREJDUWM0RERCQ1FjNEREQkNRYzREREJDUWM0RERCQ1FjNEREQkNRYzREREJDUWM0RERCQ1FjNEREQkNRYzRGQ4GzduRP/+/dGiRQtERUVhxIgRyM/Pt7RnZ2ejR48eaN68OW644QasX78eiqJg7969ln0OHDiA2267DaGhoTCZTLj//vvx22+/6RANEWmNxQwRGU5FRQVmz56NHTt24JtvvkGzZs1w5513oqamBmVlZRg5ciS6du2K3bt349lnn8WcOXOsjj958iQGDhyIHj16YOfOndi4cSOKi4sxduxYnSIiIi3xD00SkeH9+uuvaNWqFX7++Wd89913ePrpp/HLL7+gefPmAIC//vWveOihh7Bnzx706NEDCxcuxI8//oiMjAxLH7/88gvatm2Lw4cPIz4+Xq9QiEgDvDJDRIaTn5+P8ePHo2PHjggPD0eHDh0AAMeOHcPhw4fRrVs3SyEDADfeeKPV8bt27UJmZiZCQ0MtPwkJCZa+ici7+Os9ASKi+kaOHIm2bdvinXfeQXR0NGpqatClSxdcunQJQggoimK1f/0LzDU1NRg5ciSWL19u03fr1q01nTsReR6LGSIylNOnT+PgwYN466238Lvf/Q4A8N1331naExIS8Le//Q2VlZUICgoCAOzcudOqj169euFf//oXYmJi4O/Ptzkib8evmYjIUK6++mpERUXh7bffRl5eHjZv3ozZs2db2sePH4+amho8/PDDOHjwIDIyMvDSSy8BgOWKzcyZM3HmzBnce++92L59O/773/9i06ZNmDJlCqqrq3WJi4i0w2KGiAylWbNm+Oijj7Br1y506dIFs2bNwosvvmhpDw8Px+eff469e/eiR48eeOqpp7Bw4UIAsNxHEx0dje+//x7V1dVISUlBly5d8OijjyIiIgLNmvFtj8jb8GkmIpLe3/72N0yePBklJSUIDg7WezpE5GH8MpmIpPP++++jY8eOuPbaa7Fv3z7MmTMHY8eOZSFD5KNYzBCRdIqKirBw4UIUFRWhdevWuPvuu/Hcc8/pPS0i0gm/ZiIiIiKp8U44IiIikhqLGSIiIpIaixkiIiKSGosZIiIikhqLGSIiIpIaixkiIiKSGosZIiIikhqLGSIiIpIaixkiIiKS2v8HidhEWsXcAPEAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# import warnings\n",
    "# warnings.filterwarnings('ignore')\n",
    "sns.swarmplot(x='age',y='G3',data=df)   #散点图\n",
    "plt.xlabel('age')\n",
    "plt.ylabel('G3')\n",
    "plt.title('Age and grade distribution chart')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "a6e7ea85",
   "metadata": {},
   "outputs": [],
   "source": [
    "del df['G1']\n",
    "del df['G2']\n",
    "df_oh = pd.get_dummies(df)  #这里是做了特征编码  列变多了，应该是做了独热编码"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "d9f5a8ce",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>age</th>\n",
       "      <th>Medu</th>\n",
       "      <th>Fedu</th>\n",
       "      <th>famrel</th>\n",
       "      <th>freetime</th>\n",
       "      <th>goout</th>\n",
       "      <th>Dalc</th>\n",
       "      <th>Walc</th>\n",
       "      <th>health</th>\n",
       "      <th>...</th>\n",
       "      <th>Fjob_at_home</th>\n",
       "      <th>Fjob_health</th>\n",
       "      <th>Fjob_other</th>\n",
       "      <th>Fjob_services</th>\n",
       "      <th>higher_no</th>\n",
       "      <th>higher_yes</th>\n",
       "      <th>internet_no</th>\n",
       "      <th>internet_yes</th>\n",
       "      <th>romantic_no</th>\n",
       "      <th>romantic_yes</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>18</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>6</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>19</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>3</td>\n",
       "      <td>6</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>21</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>6</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3</td>\n",
       "      <td>17</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>6</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>16</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>6</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>390</th>\n",
       "      <td>390</td>\n",
       "      <td>16</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>6</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>6</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>391</th>\n",
       "      <td>391</td>\n",
       "      <td>18</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>6</td>\n",
       "      <td>2</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>392</th>\n",
       "      <td>392</td>\n",
       "      <td>17</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>6</td>\n",
       "      <td>1</td>\n",
       "      <td>6</td>\n",
       "      <td>3</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>393</th>\n",
       "      <td>393</td>\n",
       "      <td>16</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>6</td>\n",
       "      <td>3</td>\n",
       "      <td>6</td>\n",
       "      <td>2</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>394</th>\n",
       "      <td>394</td>\n",
       "      <td>18</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>5</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>6</td>\n",
       "      <td>3</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>395 rows × 36 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      ID  age  Medu  Fedu  famrel  freetime  goout  Dalc  Walc  health  ...  \\\n",
       "0      0   18     1     4       2         4      1     6     2       2  ...   \n",
       "1      1   19     3     3       1         5      3     6     1       1  ...   \n",
       "2      2   21     4     1       3         6      3     3     3       3  ...   \n",
       "3      3   17     2     2       3         6      4     2     3       3  ...   \n",
       "4      4   16     1     4       4         6      5     1     4       4  ...   \n",
       "..   ...  ...   ...   ...     ...       ...    ...   ...   ...     ...  ...   \n",
       "390  390   16     4     2       1         6      5     1     4       6  ...   \n",
       "391  391   18     2     1       2         3      6     2     5       6  ...   \n",
       "392  392   17     1     3       1         2      6     1     6       3  ...   \n",
       "393  393   16     3     4       3         1      6     3     6       2  ...   \n",
       "394  394   18     4     2       3         5      3     2     6       3  ...   \n",
       "\n",
       "     Fjob_at_home  Fjob_health  Fjob_other  Fjob_services  higher_no  \\\n",
       "0               1            0           0              0          0   \n",
       "1               1            0           0              0          0   \n",
       "2               0            0           0              1          0   \n",
       "3               0            0           1              0          0   \n",
       "4               0            1           0              0          1   \n",
       "..            ...          ...         ...            ...        ...   \n",
       "390             1            0           0              0          1   \n",
       "391             1            0           0              0          1   \n",
       "392             0            0           0              1          1   \n",
       "393             0            0           1              0          0   \n",
       "394             0            1           0              0          0   \n",
       "\n",
       "     higher_yes  internet_no  internet_yes  romantic_no  romantic_yes  \n",
       "0             1            0             1            0             1  \n",
       "1             1            0             1            0             1  \n",
       "2             1            0             1            0             1  \n",
       "3             1            0             1            0             1  \n",
       "4             0            1             0            1             0  \n",
       "..          ...          ...           ...          ...           ...  \n",
       "390           0            1             0            1             0  \n",
       "391           0            1             0            1             0  \n",
       "392           0            1             0            1             0  \n",
       "393           1            0             1            0             1  \n",
       "394           1            0             1            0             1  \n",
       "\n",
       "[395 rows x 36 columns]"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_oh"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "edeb7099",
   "metadata": {},
   "source": [
    "4.分析数据相关性系数，并取出和G3相关性最高的9个属性"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "7806d888",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "G3             1.000000\n",
       "famsize_LT3    0.140734\n",
       "famsize_GT3    0.140734\n",
       "Walc           0.117328\n",
       "Dalc           0.114198\n",
       "health         0.099965\n",
       "freetime       0.088775\n",
       "goout          0.059553\n",
       "address_R      0.044426\n",
       "address_U      0.044426\n",
       "Name: G3, dtype: float64"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 由考生填写\n",
    "cor = df_oh.corr()\n",
    "np.abs(cor['G3']).sort_values(ascending=False)[:10]   # 排序"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "1a123f04",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>age</th>\n",
       "      <th>Medu</th>\n",
       "      <th>Fedu</th>\n",
       "      <th>famrel</th>\n",
       "      <th>freetime</th>\n",
       "      <th>goout</th>\n",
       "      <th>Dalc</th>\n",
       "      <th>Walc</th>\n",
       "      <th>health</th>\n",
       "      <th>...</th>\n",
       "      <th>Fjob_at_home</th>\n",
       "      <th>Fjob_health</th>\n",
       "      <th>Fjob_other</th>\n",
       "      <th>Fjob_services</th>\n",
       "      <th>higher_no</th>\n",
       "      <th>higher_yes</th>\n",
       "      <th>internet_no</th>\n",
       "      <th>internet_yes</th>\n",
       "      <th>romantic_no</th>\n",
       "      <th>romantic_yes</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>172</th>\n",
       "      <td>172</td>\n",
       "      <td>19</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>5</td>\n",
       "      <td>5</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>119</th>\n",
       "      <td>119</td>\n",
       "      <td>20</td>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>5</td>\n",
       "      <td>5</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>389</th>\n",
       "      <td>389</td>\n",
       "      <td>17</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>6</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>198</th>\n",
       "      <td>198</td>\n",
       "      <td>20</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>5</td>\n",
       "      <td>3</td>\n",
       "      <td>6</td>\n",
       "      <td>1</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>139</th>\n",
       "      <td>139</td>\n",
       "      <td>17</td>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>6</td>\n",
       "      <td>2</td>\n",
       "      <td>5</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>71</th>\n",
       "      <td>71</td>\n",
       "      <td>18</td>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>6</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>106</th>\n",
       "      <td>106</td>\n",
       "      <td>18</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>6</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>270</th>\n",
       "      <td>270</td>\n",
       "      <td>16</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>6</td>\n",
       "      <td>6</td>\n",
       "      <td>6</td>\n",
       "      <td>2</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>348</th>\n",
       "      <td>348</td>\n",
       "      <td>17</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>6</td>\n",
       "      <td>2</td>\n",
       "      <td>6</td>\n",
       "      <td>6</td>\n",
       "      <td>5</td>\n",
       "      <td>2</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>102</th>\n",
       "      <td>102</td>\n",
       "      <td>16</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>5</td>\n",
       "      <td>5</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>264 rows × 35 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      ID  age  Medu  Fedu  famrel  freetime  goout  Dalc  Walc  health  ...  \\\n",
       "172  172   19     1     2       3         2      3     3     5       5  ...   \n",
       "119  119   20     2     4       2         4      2     3     5       5  ...   \n",
       "389  389   17     3     4       3         6      4     3     3       1  ...   \n",
       "198  198   20     4     3       1         3      5     3     6       1  ...   \n",
       "139  139   17     2     4       3         6      2     5     3       3  ...   \n",
       "..   ...  ...   ...   ...     ...       ...    ...   ...   ...     ...  ...   \n",
       "71    71   18     2     4       3         6      4     2     3       3  ...   \n",
       "106  106   18     4     3       4         6      4     2     1       1  ...   \n",
       "270  270   16     4     3       3         2      6     6     6       2  ...   \n",
       "348  348   17     1     3       6         2      6     6     5       2  ...   \n",
       "102  102   16     4     3       2         4      2     3     5       5  ...   \n",
       "\n",
       "     Fjob_at_home  Fjob_health  Fjob_other  Fjob_services  higher_no  \\\n",
       "172             0            0           0              1          0   \n",
       "119             0            1           0              0          0   \n",
       "389             0            1           0              0          1   \n",
       "198             0            0           1              0          0   \n",
       "139             0            1           0              0          1   \n",
       "..            ...          ...         ...            ...        ...   \n",
       "71              1            0           0              0          0   \n",
       "106             1            0           0              0          0   \n",
       "270             1            0           0              0          0   \n",
       "348             0            0           1              0          1   \n",
       "102             0            0           0              1          0   \n",
       "\n",
       "     higher_yes  internet_no  internet_yes  romantic_no  romantic_yes  \n",
       "172           1            0             1            0             1  \n",
       "119           1            0             1            0             1  \n",
       "389           0            1             0            1             0  \n",
       "198           1            0             1            0             1  \n",
       "139           0            1             0            1             0  \n",
       "..          ...          ...           ...          ...           ...  \n",
       "71            1            0             1            0             1  \n",
       "106           1            0             1            0             1  \n",
       "270           1            0             1            0             1  \n",
       "348           0            1             0            1             0  \n",
       "102           1            0             1            0             1  \n",
       "\n",
       "[264 rows x 35 columns]"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#数据拆分\n",
    "X = df_oh.loc[:,df_oh.columns!='G3']\n",
    "y = df_oh['G3']\n",
    "from sklearn.model_selection import train_test_split\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)\n",
    "X_train"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d6ebcff1",
   "metadata": {},
   "source": [
    "5.使用lightBGM算法进行建模，并使用网格搜索对模型进行优化cv使用5，输出模型评分的mae,mse,abs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "e57fb30b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[LightGBM] [Info] Auto-choosing row-wise multi-threading, the overhead of testing was 0.001029 seconds.\n",
      "You can set `force_row_wise=true` to remove the overhead.\n",
      "And if memory is not enough, you can set `force_col_wise=true`.\n",
      "[LightGBM] [Info] Total Bins 208\n",
      "[LightGBM] [Info] Number of data points in the train set: 264, number of used features: 35\n",
      "[LightGBM] [Info] Start training from score 9.303030\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-1 {color: black;background-color: white;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>LGBMRegressor()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LGBMRegressor</label><div class=\"sk-toggleable__content\"><pre>LGBMRegressor()</pre></div></div></div></div></div>"
      ],
      "text/plain": [
       "LGBMRegressor()"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from lightgbm import LGBMRegressor   #回归场景\n",
    "model = LGBMRegressor()\n",
    "model.fit(X_train,y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "76293384",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2.9996995899374435\n",
      "12.925831296303961\n",
      "8.0\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "78     4.290746\n",
       "371   -0.603446\n",
       "248   -4.628191\n",
       "55     3.229018\n",
       "390    6.469981\n",
       "         ...   \n",
       "246    2.004535\n",
       "239   -3.754965\n",
       "153    5.339461\n",
       "261   -0.259189\n",
       "262   -0.741716\n",
       "Name: G3, Length: 131, dtype: float64"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import mean_absolute_error,mean_squared_error\n",
    "y_pred = model.predict(X_test)\n",
    "print(mean_absolute_error(y_true=y_test,y_pred=y_pred))\n",
    "print(mean_squared_error(y_true=y_test,y_pred=y_pred))\n",
    "print(np.median(np.abs(y_test-y_pred/y_pred)))   #绝对值误差 median求中位数的"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "c03eac13",
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[LightGBM] [Info] Auto-choosing row-wise multi-threading, the overhead of testing was 0.000125 seconds.\n",
      "You can set `force_row_wise=true` to remove the overhead.\n",
      "And if memory is not enough, you can set `force_col_wise=true`.\n",
      "[LightGBM] [Info] Total Bins 191\n",
      "[LightGBM] [Info] Number of data points in the train set: 211, number of used features: 35\n",
      "[LightGBM] [Info] Start training from score 9.383886\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Info] Auto-choosing row-wise multi-threading, the overhead of testing was 0.000085 seconds.\n",
      "You can set `force_row_wise=true` to remove the overhead.\n",
      "And if memory is not enough, you can set `force_col_wise=true`.\n",
      "[LightGBM] [Info] Total Bins 191\n",
      "[LightGBM] [Info] Number of data points in the train set: 211, number of used features: 35\n",
      "[LightGBM] [Info] Start training from score 9.090047\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Info] Auto-choosing row-wise multi-threading, the overhead of testing was 0.000081 seconds.\n",
      "You can set `force_row_wise=true` to remove the overhead.\n",
      "And if memory is not enough, you can set `force_col_wise=true`.\n",
      "[LightGBM] [Info] Total Bins 191\n",
      "[LightGBM] [Info] Number of data points in the train set: 211, number of used features: 35\n",
      "[LightGBM] [Info] Start training from score 9.549763\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Info] Auto-choosing row-wise multi-threading, the overhead of testing was 0.000083 seconds.\n",
      "You can set `force_row_wise=true` to remove the overhead.\n",
      "And if memory is not enough, you can set `force_col_wise=true`.\n",
      "[LightGBM] [Info] Total Bins 191\n",
      "[LightGBM] [Info] Number of data points in the train set: 211, number of used features: 35\n",
      "[LightGBM] [Info] Start training from score 9.274882\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Info] Auto-choosing row-wise multi-threading, the overhead of testing was 0.000078 seconds.\n",
      "You can set `force_row_wise=true` to remove the overhead.\n",
      "And if memory is not enough, you can set `force_col_wise=true`.\n",
      "[LightGBM] [Info] Total Bins 191\n",
      "[LightGBM] [Info] Number of data points in the train set: 212, number of used features: 35\n",
      "[LightGBM] [Info] Start training from score 9.216981\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Info] Auto-choosing row-wise multi-threading, the overhead of testing was 0.000089 seconds.\n",
      "You can set `force_row_wise=true` to remove the overhead.\n",
      "And if memory is not enough, you can set `force_col_wise=true`.\n",
      "[LightGBM] [Info] Total Bins 191\n",
      "[LightGBM] [Info] Number of data points in the train set: 211, number of used features: 35\n",
      "[LightGBM] [Info] Start training from score 9.383886\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[LightGBM] [Info] Auto-choosing row-wise multi-threading, the overhead of testing was 0.011080 seconds.\n",
      "You can set `force_row_wise=true` to remove the overhead.\n",
      "And if memory is not enough, you can set `force_col_wise=true`.\n",
      "[LightGBM] [Info] Total Bins 191\n",
      "[LightGBM] [Info] Number of data points in the train set: 211, number of used features: 35\n",
      "[LightGBM] [Info] Start training from score 9.090047\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Info] Auto-choosing row-wise multi-threading, the overhead of testing was 0.000094 seconds.\n",
      "You can set `force_row_wise=true` to remove the overhead.\n",
      "And if memory is not enough, you can set `force_col_wise=true`.\n",
      "[LightGBM] [Info] Total Bins 191\n",
      "[LightGBM] [Info] Number of data points in the train set: 211, number of used features: 35\n",
      "[LightGBM] [Info] Start training from score 9.549763\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Info] Auto-choosing row-wise multi-threading, the overhead of testing was 0.000065 seconds.\n",
      "You can set `force_row_wise=true` to remove the overhead.\n",
      "And if memory is not enough, you can set `force_col_wise=true`.\n",
      "[LightGBM] [Info] Total Bins 191\n",
      "[LightGBM] [Info] Number of data points in the train set: 211, number of used features: 35\n",
      "[LightGBM] [Info] Start training from score 9.274882\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Info] Auto-choosing row-wise multi-threading, the overhead of testing was 0.000108 seconds.\n",
      "You can set `force_row_wise=true` to remove the overhead.\n",
      "And if memory is not enough, you can set `force_col_wise=true`.\n",
      "[LightGBM] [Info] Total Bins 191\n",
      "[LightGBM] [Info] Number of data points in the train set: 212, number of used features: 35\n",
      "[LightGBM] [Info] Start training from score 9.216981\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Info] Auto-choosing row-wise multi-threading, the overhead of testing was 0.000099 seconds.\n",
      "You can set `force_row_wise=true` to remove the overhead.\n",
      "And if memory is not enough, you can set `force_col_wise=true`.\n",
      "[LightGBM] [Info] Total Bins 191\n",
      "[LightGBM] [Info] Number of data points in the train set: 211, number of used features: 35\n",
      "[LightGBM] [Info] Start training from score 9.383886\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[LightGBM] [Info] Auto-choosing row-wise multi-threading, the overhead of testing was 0.000108 seconds.\n",
      "You can set `force_row_wise=true` to remove the overhead.\n",
      "And if memory is not enough, you can set `force_col_wise=true`.\n",
      "[LightGBM] [Info] Total Bins 191\n",
      "[LightGBM] [Info] Number of data points in the train set: 211, number of used features: 35\n",
      "[LightGBM] [Info] Start training from score 9.090047\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Info] Auto-choosing row-wise multi-threading, the overhead of testing was 0.000076 seconds.\n",
      "You can set `force_row_wise=true` to remove the overhead.\n",
      "And if memory is not enough, you can set `force_col_wise=true`.\n",
      "[LightGBM] [Info] Total Bins 191\n",
      "[LightGBM] [Info] Number of data points in the train set: 211, number of used features: 35\n",
      "[LightGBM] [Info] Start training from score 9.549763\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Info] Auto-choosing row-wise multi-threading, the overhead of testing was 0.000100 seconds.\n",
      "You can set `force_row_wise=true` to remove the overhead.\n",
      "And if memory is not enough, you can set `force_col_wise=true`.\n",
      "[LightGBM] [Info] Total Bins 191\n",
      "[LightGBM] [Info] Number of data points in the train set: 211, number of used features: 35\n",
      "[LightGBM] [Info] Start training from score 9.274882\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Info] Auto-choosing row-wise multi-threading, the overhead of testing was 0.000450 seconds.\n",
      "You can set `force_row_wise=true` to remove the overhead.\n",
      "And if memory is not enough, you can set `force_col_wise=true`.\n",
      "[LightGBM] [Info] Total Bins 191\n",
      "[LightGBM] [Info] Number of data points in the train set: 212, number of used features: 35\n",
      "[LightGBM] [Info] Start training from score 9.216981\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Info] Auto-choosing row-wise multi-threading, the overhead of testing was 0.000076 seconds.\n",
      "You can set `force_row_wise=true` to remove the overhead.\n",
      "And if memory is not enough, you can set `force_col_wise=true`.\n",
      "[LightGBM] [Info] Total Bins 208\n",
      "[LightGBM] [Info] Number of data points in the train set: 264, number of used features: 35\n",
      "[LightGBM] [Info] Start training from score 9.303030\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-2 {color: black;background-color: white;}#sk-container-id-2 pre{padding: 0;}#sk-container-id-2 div.sk-toggleable {background-color: white;}#sk-container-id-2 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-2 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-2 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-2 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-2 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-2 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-2 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-2 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-2 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-2 div.sk-item {position: relative;z-index: 1;}#sk-container-id-2 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-2 div.sk-item::before, #sk-container-id-2 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-2 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-2 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-2 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-2 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-2 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-2 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-2 div.sk-label-container {text-align: center;}#sk-container-id-2 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-2 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>GridSearchCV(cv=5, estimator=LGBMRegressor(),\n",
       "             param_grid={&#x27;learning_rate&#x27;: [0.1, 0.3, 0.5]},\n",
       "             scoring=make_scorer(mean_absolute_error))</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-2\" type=\"checkbox\" ><label for=\"sk-estimator-id-2\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">GridSearchCV</label><div class=\"sk-toggleable__content\"><pre>GridSearchCV(cv=5, estimator=LGBMRegressor(),\n",
       "             param_grid={&#x27;learning_rate&#x27;: [0.1, 0.3, 0.5]},\n",
       "             scoring=make_scorer(mean_absolute_error))</pre></div></div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-3\" type=\"checkbox\" ><label for=\"sk-estimator-id-3\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">estimator: LGBMRegressor</label><div class=\"sk-toggleable__content\"><pre>LGBMRegressor()</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-4\" type=\"checkbox\" ><label for=\"sk-estimator-id-4\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LGBMRegressor</label><div class=\"sk-toggleable__content\"><pre>LGBMRegressor()</pre></div></div></div></div></div></div></div></div></div></div>"
      ],
      "text/plain": [
       "GridSearchCV(cv=5, estimator=LGBMRegressor(),\n",
       "             param_grid={'learning_rate': [0.1, 0.3, 0.5]},\n",
       "             scoring=make_scorer(mean_absolute_error))"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.metrics import make_scorer \n",
    "from sklearn.metrics import f1_score\n",
    "\n",
    "param_grids = {'learning_rate':[0.1,0.3,0.5]}\n",
    "model_gs = GridSearchCV(estimator=model,param_grid=param_grids,cv=5,scoring=make_scorer(mean_absolute_error))\n",
    "model_gs.fit(X_train,y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "fc97bb8a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3.214585825144262"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_gs.best_score_"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "037edede",
   "metadata": {},
   "source": [
    "6.使用Voting算法聚合RandomForestRegressor,GradientBoostingRegressor,LinearRegression模型，预测成绩G3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "090512a7",
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "from sklearn.datasets import load_diabetes\n",
    "from sklearn.ensemble import GradientBoostingRegressor\n",
    "from sklearn.ensemble import RandomForestRegressor\n",
    "from sklearn.linear_model import LinearRegression\n",
    "from sklearn.ensemble import VotingRegressor\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.metrics import r2_score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "57a71c7e",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Train classifiers\n",
    "reg1 = GradientBoostingRegressor(random_state=1)\n",
    "reg2 = RandomForestRegressor(random_state=1)\n",
    "reg3 = LinearRegression()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "6e0f0dc3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "VotingRegressor R2: 0.011018231880463247\n",
      "[ 9.8534731   9.12724791 10.40774643  9.25728853  8.73018687 10.08413613\n",
      " 10.08147425 10.32917916 10.18443077  9.79537675  9.42900666  9.38692529\n",
      "  8.06272028 10.8157783   9.03049584  9.22640512  9.39500574  9.84270332\n",
      "  9.28553201  9.45021589  9.03067247  9.79017374  9.7475827   9.32625727\n",
      "  7.24594197 11.108995   10.0365351   6.97519629  8.56015716  8.79262895\n",
      "  9.87099042  9.37487423  7.40152913 10.76182818  9.32615462  9.82091602\n",
      "  8.71672676  9.33718458  8.44539805  9.16821302  7.94478827  7.68286053\n",
      "  8.01711499  7.30359005  8.63280585  8.68801939  8.86217967 10.08797099\n",
      "  7.95078048  9.14939209  9.59091693  9.422911    8.04573817 10.6015795\n",
      "  8.30263961 11.1563054  10.10150388 10.4361193   9.75190548  7.10985747\n",
      "  8.89941605  8.88360054  8.62194432  9.33837844  8.42336137  7.97687271\n",
      " 10.06094172 11.41348975  9.69882167  9.82084589  8.81881622  9.90974955\n",
      "  8.54445014  7.07501177  9.27610189  9.41091741 10.01481701  9.83201765\n",
      "  9.01869953  8.28726495  8.3764718  10.20568165  9.480216   10.23869863\n",
      "  9.29062478 10.24193437 10.58568999  8.47740501  9.81500413  9.34815602\n",
      "  8.16698373  9.11186784 10.7259336   8.56373672 10.26638006  8.67506945\n",
      "  9.04238474  8.35834077  9.94457007  8.49808215  7.09113612  8.88573393\n",
      " 10.25662386  9.15187817  9.3341253   9.26184243 10.35837992  9.96359858\n",
      "  9.66438466 10.20163968 10.6180885   9.55999456 10.25162363 10.36078456\n",
      "  8.94758714  8.25613063  8.38571046  8.36914805  7.16781232  8.93654254\n",
      "  9.63441211 10.03403296  8.78742066  9.57908118  8.65519502  8.92576063\n",
      "  8.50433832 10.93607604  9.94884854  8.69735485  8.77969581]\n"
     ]
    }
   ],
   "source": [
    "# 由考生填写\n",
    "ereg = VotingRegressor([('gb',reg1),('rf',reg2),('lr',reg3)],weights=[1,5,10])\n",
    "ereg.fit(X_train,y_train)\n",
    "pre_ereg = ereg.predict(X_test)\n",
    "print(\"VotingRegressor R2:\",r2_score(y_test,pre_ereg))\n",
    "print(pre_ereg)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
